#ifndef CALCMAINVIEW_H
#define CALCMAINVIEW_H

#include <QtGui/QWidget>
#include <QAbstractButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QTextEdit>
#include <QLineEdit>
#include <QLabel>
#include <QListWidget>
#include "CalcLogic.h"
#include "Keyboard.h"
#include "Common.h"

class CalcMainView : public QWidget
{
    Q_OBJECT

public:
    CalcMainView(QWidget *parent = 0);
    ~CalcMainView();

private slots:
    void handleBasicmode();
    void handleScientificmode();
    void handleProgrammode();
    void handleStatisticsmode();
    void appendToDataset(QString data);
    void removeFromDataset(int rowToRemove);
    void clearDataset();
private:
    QVBoxLayout* mMainLayout;
    QHBoxLayout* mKeyboardLayout;
    QWidget* mBasicmodeKeyboard;
    QWidget* mScientificmodeKeyboard;
    QWidget* mProgrammodeKeyboard;
    QWidget* mStatisticsmodeKeyboard;
    Keyboard* mKeyboard;
    QTextEdit* mConsole;
    QLabel* mByteConsole;
    QListWidget* mDatasetListWidget;
    CalcLogic* mLogic;
    CalcMode mCurrentMode;
};

#endif // CALCMAINVIEW_H
